package com.ybkj.daijia.server.mapper;

import com.ybkj.daijia.server.model.DriverConsumedRecord;
import java.util.List;
import org.apache.ibatis.annotations.Param;

public interface DriverConsumedRecordMapper {
    /**
     * 保存服务人员消费记录
     *
     * @param record
     * @return
     */
//	int insertRecord(DriverConsumedRecord record);

    /**
     * 根据主键查询服务人员消费记录
     *
     * @param id
     * @return
     */
//	DriverConsumedRecord selectByPrimaryKey(Long id);

    /**
     * 根据一组主键查询服务人员消费记录
     *
     * @param ids
     * @return
     */
//	List<DriverConsumedRecord> selectByIdIn(Long ids[]);

    /**
     * 根据消费类型查询服务人员消费记录
     *
     * @param type
     * @return
     */
//	List<DriverConsumedRecord> selectByType(@Param("type") String type);

    /**
     * 根据消费类型和订单号查询服务人员消费记录
     *
     * @param type
     * @param orderId
     * @return
     */
    List<DriverConsumedRecord> selectByTypeAndOrderId(
        @Param("type") String type, @Param("orderId") Long orderId);

    /**
     * 根据订单号查询服务人员提成
     *
     * @param orderId
     * @return
     */
//	DriverConsumedRecord selectTichengByOrderId(@Param("orderId") Long orderId);

    /**
     * 根据类型和时间段统计费用
     *
     * @param type
     * @param start
     * @param end
     * @return
     */
//	BigDecimal sumMoneyByTypeAndCreated(@Param("type") String type,
//			@Param("start") Date start, @Param("end") Date end);

    /**
     * 根据服务人员所在公司、类型和时间段统计费用
     *
     * @param type
     * @param companyId
     * @param start
     * @param end
     * @return
     */
//	BigDecimal sumMoneyByCompanyAndTypeWithCreated(@Param("type") String type,
//			@Param("companyId") Long companyId, @Param("start") Date start,
//			@Param("end") Date end);

    /**
     * 根据服务人员查询服务人员消费记录
     *
     * @param driverId
     * @param offset
     * @param size
     * @return
     */
    List<DriverConsumedRecord> selectByDriver(@Param("driverId") Long driverId,
        @Param("offset") Integer offset, @Param("size") Integer size);

    /**
     * 根据司机统计司机消费记录总数
     *
     * @param driverId
     * @return
     */
    long countByDriver(@Param("driverId") Long driverId);

    /**
     * 根据服务人员和时间段查询消费记录
     *
     * @param driverId
     * @param start
     * @param end
     * @param offset
     * @param size
     * @return
     */
//	List<DriverConsumedRecord> selectByDriverAndCreated(
//			@Param("driverId") Long driverId, @Param("start") Date start,
//			@Param("end") Date end, @Param("offset") Integer offset,
//			@Param("size") Integer size);

    /**
     * 根据查询参数查询消费记录
     *
     * @param prams
     * @return
     */
//	List<DriverConsumedRecord> selectByParams(Map<String, Object> prams);

    /**
     * 根据查询参数统计消费记录
     *
     * @param prams
     * @return
     */
//	long countByParams(Map<String, Object> prams);

    /**
     * 根据服务人员和时间段统计消费记录
     *
     * @param driverId
     * @param start
     * @param end
     * @return
     */
//	long countByDriverAndCreated(@Param("driverId") Long driverId,
//			@Param("start") Date start, @Param("end") Date end);

    /**
     * 根据服务人员和时间段查询消费记录
     *
     * @param driverId
     * @param type
     * @param start
     * @param end
     * @return
     */
//	List<DriverConsumedRecord> selectByDriverAndTypeWithCreated(@Param("driverId") Long driverId,
//			@Param("type") String type,
//			@Param("start") Date start,
//			@Param("end") Date end);

    /**
     * 根据主键删除服务人员消费记录
     *
     * @param id
     * @return
     */
//	int deleteByPrimaryKey(Long id);

    /**
     * 根据服务人员id删除司机消费记录
     *
     * @param id
     * @return
     */
    int deleteByDriverId(@Param("driverId") Long driverId);

    /**
     * 根据主键更新服务人员消费记录
     *
     * @param record
     * @return
     */
//	int updateByPrimaryKey(DriverConsumedRecord record);

    List<DriverConsumedRecord> selectAll();


}
